package leetcode;

import java.util.HashMap;

public class Q0013 {
    HashMap<Character, Integer> map = new HashMap<>();

    {
        map.put('I', 1);
        map.put('V', 5);
        map.put('X', 10);
        map.put('L', 50);
        map.put('C', 100);
        map.put('D', 500);
        map.put('M', 1000);
    }

    public int romanToInt(String s) {
        int res = 0;
        for (int i = 0; i < s.length(); ) {
            int j = i;
            while (j < s.length() && s.charAt(j) == s.charAt(i)) j++;
            int sig = 1;
            if (j < s.length() && map.get(s.charAt(i)) < map.get(s.charAt(j))) sig = -1;
            res += sig * map.get(s.charAt(i)) * (j - i);
            i = j;
        }
        return res;
    }

    public static void main(String[] args) {
        Q0013 sl = new Q0013();
        System.out.println(sl.romanToInt("MCMXCIV"));
    }
}
